// settings.js
const app = getApp()

Page({
  data: {
    // 应用设置
    notifications: true,
    darkMode: false,
    autoLock: false,
    appVersion: '1.0.0',
    
    // 个人资料表单
    showProfileModal: false,
    profileForm: {
      name: '',
      phone: '',
      bio: '',
      avatar: ''
    },
    
    // 工作时间设置
    showWorkingHoursModal: false,
    workingHours: {
      start: '08:00',
      end: '18:00'
    },
    weekDays: [
      { key: 'monday', name: '周一', selected: true },
      { key: 'tuesday', name: '周二', selected: true },
      { key: 'wednesday', name: '周三', selected: true },
      { key: 'thursday', name: '周四', selected: true },
      { key: 'friday', name: '周五', selected: true },
      { key: 'saturday', name: '周六', selected: false },
      { key: 'sunday', name: '周日', selected: false }
    ]
  },

  onLoad() {
    this.loadSettings()
    this.loadProfile()
  },

  onShow() {
    // 页面显示时刷新数据
  },

  // 加载设置
  loadSettings() {
    // 从本地存储加载设置
    const settings = wx.getStorageSync('chefSettings') || {}
    this.setData({
      notifications: settings.notifications !== undefined ? settings.notifications : true,
      darkMode: settings.darkMode !== undefined ? settings.darkMode : false,
      autoLock: settings.autoLock !== undefined ? settings.autoLock : false
    })
  },

  // 加载个人资料
  loadProfile() {
    const userInfo = app.globalData.userInfo
    if (userInfo) {
      this.setData({
        'profileForm.name': userInfo.name || '',
        'profileForm.phone': userInfo.phone || '',
        'profileForm.bio': userInfo.bio || '',
        'profileForm.avatar': userInfo.avatar || ''
      })
    }
  },

  // 保存设置到本地存储
  saveSettings() {
    const settings = {
      notifications: this.data.notifications,
      darkMode: this.data.darkMode,
      autoLock: this.data.autoLock
    }
    wx.setStorageSync('chefSettings', settings)
  },

  // 跳转到背景设置
  goToBgSettings() {
    wx.navigateTo({
      url: '/pages/chef/settings/bg-settings/bg-settings'
    })
  },

  // 跳转到TabBar图标设置
  goToIconSettings() {
    wx.navigateTo({
      url: '/pages/chef/settings/icon-settings/icon-settings'
    })
  },



  // 跳转到主题设置
  goToThemeSettings() {
    wx.showToast({
      title: '主题设置功能开发中',
      icon: 'none'
    })
  },

  // 切换通知设置
  toggleNotifications(e) {
    this.setData({
      notifications: e.detail.value
    })
    this.saveSettings()
    
    wx.showToast({
      title: e.detail.value ? '已开启通知' : '已关闭通知',
      icon: 'success'
    })
  },

  // 切换深色模式
  toggleDarkMode(e) {
    this.setData({
      darkMode: e.detail.value
    })
    this.saveSettings()
    
    wx.showToast({
      title: e.detail.value ? '已开启深色模式' : '已关闭深色模式',
      icon: 'success'
    })
  },

  // 切换自动锁屏
  toggleAutoLock(e) {
    this.setData({
      autoLock: e.detail.value
    })
    this.saveSettings()
    
    wx.showToast({
      title: e.detail.value ? '已开启自动锁屏' : '已关闭自动锁屏',
      icon: 'success'
    })
  },

  // 编辑个人资料
  editProfile() {
    this.setData({
      showProfileModal: true
    })
  },

  // 关闭个人资料弹窗
  closeProfileModal() {
    this.setData({
      showProfileModal: false
    })
  },

  // 个人资料表单输入处理
  onNameInput(e) {
    this.setData({
      'profileForm.name': e.detail.value
    })
  },

  onPhoneInput(e) {
    this.setData({
      'profileForm.phone': e.detail.value
    })
  },

  onBioInput(e) {
    this.setData({
      'profileForm.bio': e.detail.value
    })
  },

  // 选择头像
  chooseAvatar() {
    wx.chooseImage({
      count: 1,
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        const tempFilePath = res.tempFilePaths[0]
        this.setData({
          'profileForm.avatar': tempFilePath
        })
      }
    })
  },

  // 保存个人资料
  saveProfile() {
    const { name, phone, bio, avatar } = this.data.profileForm
    
    if (!name.trim()) {
      wx.showToast({
        title: '请输入姓名',
        icon: 'none'
      })
      return
    }

    // 更新全局数据
    if (app.globalData.userInfo) {
      app.globalData.userInfo.name = name
      app.globalData.userInfo.phone = phone
      app.globalData.userInfo.bio = bio
      app.globalData.userInfo.avatar = avatar
    }

    // 保存到本地存储
    wx.setStorageSync('userInfo', app.globalData.userInfo)

    this.closeProfileModal()
    
    wx.showToast({
      title: '保存成功',
      icon: 'success'
    })
  },

  // 修改密码
  changePassword() {
    wx.showModal({
      title: '修改密码',
      content: '请联系管理员重置密码',
      showCancel: false
    })
  },

  // 设置工作时间
  setWorkingHours() {
    this.setData({
      showWorkingHoursModal: true
    })
  },

  // 关闭工作时间弹窗
  closeWorkingHoursModal() {
    this.setData({
      showWorkingHoursModal: false
    })
  },

  // 开始时间选择
  onStartTimeChange(e) {
    this.setData({
      'workingHours.start': e.detail.value
    })
  },

  // 结束时间选择
  onEndTimeChange(e) {
    this.setData({
      'workingHours.end': e.detail.value
    })
  },

  // 切换工作日选择
  toggleWeekDay(e) {
    const key = e.currentTarget.dataset.key
    const weekDays = this.data.weekDays.map(day => {
      if (day.key === key) {
        return { ...day, selected: !day.selected }
      }
      return day
    })
    
    this.setData({ weekDays })
  },

  // 保存工作时间设置
  saveWorkingHours() {
    const { start, end } = this.data.workingHours
    const selectedDays = this.data.weekDays.filter(day => day.selected)
    
    if (selectedDays.length === 0) {
      wx.showToast({
        title: '请至少选择一个工作日',
        icon: 'none'
      })
      return
    }

    // 保存到本地存储
    wx.setStorageSync('workingHours', {
      start,
      end,
      weekDays: selectedDays
    })

    this.closeWorkingHoursModal()
    
    wx.showToast({
      title: '设置已保存',
      icon: 'success'
    })
  },

  // 订单管理设置
  setOrderSettings() {
    wx.showModal({
      title: '订单管理设置',
      content: '功能开发中，敬请期待',
      showCancel: false
    })
  },

  // 设置最大接单数
  setMaxOrders() {
    wx.showModal({
      title: '最大接单数设置',
      content: '功能开发中，敬请期待',
      showCancel: false
    })
  },

  // 清除缓存
  clearCache() {
    wx.showModal({
      title: '清除缓存',
      content: '确定要清除应用缓存吗？',
      success: (res) => {
        if (res.confirm) {
          wx.clearStorage({
            success: () => {
              wx.showToast({
                title: '缓存已清除',
                icon: 'success'
              })
            }
          })
        }
      }
    })
  },

  // 检查更新
  checkUpdate() {
    wx.showModal({
      title: '检查更新',
      content: '当前已是最新版本',
      showCancel: false
    })
  },

  // 关于应用
  aboutApp() {
    wx.showModal({
      title: '关于应用',
      content: '家庭点餐小程序 v1.0.0\n\n让家庭用餐更加便捷',
      showCancel: false
    })
  },

  // 切换到成员模式
  switchToMember() {
    wx.showModal({
      title: '界面切换',
      content: '确定要切换到用户界面吗？您的厨师身份将保持不变。',
      success: (res) => {
        if (res.confirm) {
          // 不改变用户角色，只是切换界面
          wx.reLaunch({
            url: '/pages/index/index'
          })
        }
      }
    })
  },

  // 退出登录
  logout() {
    wx.showModal({
      title: '退出登录',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          // 清除用户信息
          app.globalData.userInfo = null
          app.globalData.userRole = null
          
          // 清除本地存储
          wx.removeStorageSync('userInfo')
          wx.removeStorageSync('chefSettings')
          
          // 返回首页
          wx.reLaunch({
            url: '/pages/index/index'
          })
        }
      }
    })
  },

  // 阻止事件冒泡
  stopPropagation() {
    // 在微信小程序中，使用catchtap已经可以阻止事件冒泡
    return false
  }
}) 